nQuant/featureCV return wrong sized matrix #208
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes
nQuant
andfeatureCV
. Both functions return a wrong-sized matrix if the grouping variable is afactor
that contains morelevels
than items:MWE:
This results in an error if you want to apply TOP3 quantitation after you did some subsetting (e.g. filtering):
This PR removes
utils.colSd
,utils.applyColumnwiseByGroup
, rewritesnQuants
,featureCV
, addsrowmean
,rowsd
(both similar torowsum
) and adds unit tests for all of them.As side-effect it changes the output of
nQuants
andfeatureCV
. Now they return a matrix withnrow(x) == sum(levels(group) %in% group)
instead ofnrow(x) == nlevels(group)
. I don't think anybody would use the former output format. In the current phase of the release cycle it should be safe to change the dimension of the return values.Same example as above with the new implementation: